The present invention relates to a method and system for detecting and pruning slow members of a multicast group.
The use of multicast data transmission within communication networks is well known. In a multicast transmission group one node, referred to herein as the sending node, transmits data in packets via a reliable multicast protocol to a plurality of other nodes in the multicast group. The multicast group is organized as a hierarchical repair tree as known in the art. The repair tree includes nodes identified as repair heads that receive Acknowledgements (ACKs) and Negative Acknowledgements (NACKs) from child nodes within the repair tree. In response to the receipt of a NACK at a repair head, the repair head retransmits data packets that were not received by its children.
The data packets may be multicast by the sending node to the group members and forwarded via the repair tree nodes or alternatively via other nodes that are not nodes within the repair tree. The nodes within the repair tree include the sending node and intermediate nodes which serve as repair heads and receivers which provide ACK/NACK responses to repair heads but do not serve as repair heads. For purposes of discussion herein, it is assumed that the multicast group members and the repair tree are the same, although it is recognized that data packets may be delivered to multicast group members via nodes that are not members of the repair tree.
For purposes of reference, packets transmitted toward the sending node from the receivers or intermediate nodes are considered as being transmitted upstream or up the tree and packets transmitted from the sending node or intermediate nodes toward a receiver node are considered as being transmitted downstream or down the tree.
Typically, in multicast data transmissions, reliability support mechanisms are employed which attempt to assure that all member nodes of a multicast group receive the transmitted data. Moreover, flow control mechanisms are employed that result in the adjustment of the data transmission rate to a rate that can be accommodated by intermediate nodes and receivers. The technique of reducing the transmission rate of the sending node to a rate that can be accommodated by all intermediate and receiver nodes fails, however, when the sending node must maintain a minimum data transmission rate which exceeds the rate at which one or more nodes in the multicast group can receive data.
For the above reasons, it would be desirable to have a mechanism which provides for the detection of multicast group members which cannot receive data from a sending node at a minimum specified data rate. Additionally, it would be desirable to provide a mechanism for pruning such nodes from the multicast group so that the sending node can resume transmission at an acceptable data rate.